public class ResourceHttpMessageConverter extends AbstractHttpMessageConverter<Resource>
HttpMessageConverter
that can read and write Resources
.
By default, this converter can read all media types. The Java Activation Framework (JAF) -
if available - is used to determine the Content-Type
of written resources.
If JAF is not available, application/octet-stream
is used.
Modifier and Type | Class and Description |
---|---|
private static class |
ResourceHttpMessageConverter.ActivationMediaTypeFactory
Inner class to avoid a hard-coded JAF dependency.
|
Modifier and Type | Field and Description |
---|---|
private static boolean |
jafPresent |
logger
Constructor and Description |
---|
ResourceHttpMessageConverter() |
Modifier and Type | Method and Description |
---|---|
protected java.lang.Long |
getContentLength(Resource resource,
MediaType contentType)
Returns the content length for the given type.
|
protected MediaType |
getDefaultContentType(Resource resource)
Returns the default content type for the given type.
|
protected Resource |
readInternal(java.lang.Class<? extends Resource> clazz,
HttpInputMessage inputMessage)
Abstract template method that reads the actual object.
|
protected boolean |
supports(java.lang.Class<?> clazz)
Indicates whether the given class is supported by this converter.
|
protected void |
writeInternal(Resource resource,
HttpOutputMessage outputMessage)
Abstract template method that writes the actual body.
|
addDefaultHeaders, canRead, canRead, canWrite, canWrite, getSupportedMediaTypes, read, setSupportedMediaTypes, write
protected boolean supports(java.lang.Class<?> clazz)
AbstractHttpMessageConverter
supports
in class AbstractHttpMessageConverter<Resource>
clazz
- the class to test for supporttrue
if supported; false
otherwiseprotected Resource readInternal(java.lang.Class<? extends Resource> clazz, HttpInputMessage inputMessage) throws java.io.IOException, HttpMessageNotReadableException
AbstractHttpMessageConverter
AbstractHttpMessageConverter.read(java.lang.Class<? extends T>, org.springframework.http.HttpInputMessage)
.readInternal
in class AbstractHttpMessageConverter<Resource>
clazz
- the type of object to returninputMessage
- the HTTP input message to read fromjava.io.IOException
- in case of I/O errorsHttpMessageNotReadableException
- in case of conversion errorsprotected MediaType getDefaultContentType(Resource resource)
AbstractHttpMessageConverter
AbstractHttpMessageConverter.write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)
is invoked without a specified content type parameter.
By default, this returns the first element of the
supportedMediaTypes
property, if any.
Can be overridden in subclasses.
getDefaultContentType
in class AbstractHttpMessageConverter<Resource>
resource
- the type to return the content type fornull
if not knownprotected java.lang.Long getContentLength(Resource resource, MediaType contentType) throws java.io.IOException
AbstractHttpMessageConverter
By default, this returns null
, meaning that the content length is unknown.
Can be overridden in subclasses.
getContentLength
in class AbstractHttpMessageConverter<Resource>
resource
- the type to return the content length fornull
if not knownjava.io.IOException
protected void writeInternal(Resource resource, HttpOutputMessage outputMessage) throws java.io.IOException, HttpMessageNotWritableException
AbstractHttpMessageConverter
AbstractHttpMessageConverter.write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)
.writeInternal
in class AbstractHttpMessageConverter<Resource>
resource
- the object to write to the output messageoutputMessage
- the HTTP output message to write tojava.io.IOException
- in case of I/O errorsHttpMessageNotWritableException
- in case of conversion errors